package com.zto.security.web.controller;

import java.util.HashMap;
import java.util.Map;

import com.zto.security.exception.UserNotExistException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;


/**
 * Created by xingyuchao on 2017/12/3.
 *
 *
 * BasicErrorController是springboot中默认处理异常的控制器
 *
 * 会根据请求头判断请求到底返回什么格式，
 * 当通过浏览器请求时候，Content-Type:text/html;charset=ISO-8859-1 ，会返回一个视图，也可以替换springboot默认的错误页面，在resources/error 下面的403，404，405
 * 当通过restlet client或app发起请求的时候，因为没有带Content-Type 所以返回一个json
 *
 *
 */
@ControllerAdvice
public class ControllerExceptionHandler {




	@ExceptionHandler(UserNotExistException.class)
	@ResponseBody
	@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)  //500异常处理
	public Map<String, Object> handleUserNotExistException(UserNotExistException ex) {
		Map<String, Object> result = new HashMap<>();
		result.put("id", ex.getId());
		result.put("message", ex.getMessage());
		return result;
	}

}
